Multiple core systems require an allocation of tasks between multiple cores. Many applications that initially programmed for a single core system need to be converted to multiple core format in order to utilize as many cores as possible. The complexity of task scheduling can increase as the number of cores and well as the expected throughput of the system increase. Unwanted phenomena such as shared queue bottlenecks, inefficient allocation of resources during the scheduling process can arise in such cores.
When managing multiple queues and especially a when managing large number of queues information items of these queues can be starved—not attended during a satisfactory time window.